package com.ygqh.baby.service;

import com.ygqh.baby.ao.*;
import com.ygqh.baby.model.YgProduct4ListModel;
import com.ygqh.baby.po.YgProductSecond;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author admin
 */
public interface YgProductSecondService {

	List<YgProductSecond> find();

	int findCount();

	YgProductSecond findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	Message save(YgProductSecond ygProductSecond);

	Message update(YgProductSecond ygProductSecond);

	int saveOrUpdate(YgProductSecond ygProductSecond);

	/**
	 * 秒杀活动列表
	 *
	 * @param queryInfo		分页参数
	 * @param supplierId
	 * @param pStatus		活动状态
	 * @param startTime		有效期开始时间
	 * @param endTime		有效期结束时间
	 * @param q 			活动名称模糊搜索
	 * @return
	 */
	ResultSet<YgProductSecond> search(QueryInfo queryInfo, Long supplierId, PromotionStatus pStatus,
									  Date startTime, Date endTime, String q);

	List<YgProduct4ListModel> findProductBySecondId(QueryInfo queryInfo, Long secondId, String productName, Long groupId);

	// 获取当前进行中的秒杀活动
	@Deprecated
	YgProductSecond findActive();
	YgProductSecond findActive(SalesPlatform salesPlatform);

	Boolean selectSecondByTime(Date startTime, Date endTime, Long secondId);

	/**
	 * 获取指定日期秒杀商品信息
	 * 
	 * @param specifyDate
	 * @return
	 */
	@Deprecated
	List<YgProduct4ListModel> findBySpecifyDate(Date specifyDate);
	List<YgProduct4ListModel> findBySpecifyDate(Date specifyDate, SalesPlatform salesPlatform);

	/**
	 * 获取指定商品的秒杀日期
	 * @param productId
	 * @return
	 */
	Message findSecondDateByProductId(Long productId);

	Message findUnEndByPid(Long productId);

	Map<String,Object> findActiveSecondInfo(SalesPlatform salesPlatform);

	YgProductSecond findWithProductInfoById(Long id);

    Message delProductSecond(Long id);
}
